package TimeUtils

import (
	"log"
	"time"
)

// StrToUNIXMilli 将字符串时间转成毫秒时间戳
func StrToUNIXMilli(Str string, layout string) int64 {
	t, err := time.Parse(layout, Str) // 将 UnixMilli 时间戳转换为 Time 对象
	if err != nil {
		log.Println("转化失败", err)
		return 0
	}
	t = t.Add(-8 * time.Hour)
	return t.UnixMilli() // 返回毫秒时间戳
}

// StrToUNIX 将字符串时间转成秒时间戳
func StrToUNIX(Str string, layout string) int64 {
	t, err := time.Parse(layout, Str) // 将 UnixMilli 时间戳转换为 Time 对象
	if err != nil {
		log.Println("转化失败", err)
		return 0
	}
	t = t.Add(-8 * time.Hour)
	return t.Unix() // 返回秒级时间戳
}

// UNIXMilliToSTR 将毫秒级时间戳转换为指定格式的字符串
func UNIXMilliToSTR(Time int64, layout string) string {
	t := time.UnixMilli(Time) // 将 UnixMilli 时间戳转换为 Time 对象
	return t.Format(layout)   // 返回格式化后的字符串
}

// UNIXToSTR 将秒级时间戳转换为指定格式的字符串
func UNIXToSTR(Time int64, layout string) string {
	t := time.Unix(Time, 0) // 将 Unix 时间戳转换为 Time 对象
	return t.Format(layout) // 返回格式化后的字符串
}
